招生考试网
学历| 高考 美术高考 考研 自考 成考 专升本 中考 会考 外语| 四六级 职称英语 商务英语 公共英语 日语能力 翻译资格 JTEST
资格| 公务员 报关员 银行从业 司法 导游 教师资格 报关 财会| 会计证 经济师 会计职称 注册会计 税务师 资产评估 审计师
工程| 一建 二建 造价师 造价员 咨询师 监理师 安全师 医学| 卫生资格 执业医师 执业药师 执业护士 | 教案 论文 文档
IT类| 计算机等级 计算机软考 职称计算机 高校计算机 推荐-国家公务员 事业单位招聘 军校国防生 自主招生 艺术特长生 招飞
 3773考试网 - 计算机等级考试 - 试题答案 - 正文

05年9月全国计算机等级考试四级笔试试卷一(含部分分析)

来源:招生考试网 2006-8-12

一、选择题(共70题,每题1分,满分70分。其中(1)—(55)题为中文题,(56)—(70)题为英文题)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列描述中正确的是
  A)断电后,ROM内保存的信息会丢失
  B)断电后,RAM内保存的信息会丢失
  C)ROM是辅助存储器,RAM是主存储器
  D)ROM是主存储器,RAM是辅助存储器
  答案:B
  分析:RAM作主存。ROM不能,因为ROM只能读不能写。我们常说的主存就是只内存。
严格来说,作内存的是DRAM(动态随机存取存储器),动态刷新。
而SRAM这个并不常用。  所以断电后DRAM这个里的内容要丢失。
(2)操作数地址存放在寄存器中的寻址方式称为
  A)相对寻址方式  
  B)变址寄存器寻址方式
  C)寄存器寻址方式  
  D)寄存器间接寻址方式
  答案:D
  分析:A、操作数地址为程序计数器中的内容与位移量之和。  EA=(PC)+D
      B、操作数地址为变址寄存器的内容与位移量之和。    EA=(R)变+D
      C、操作数在寄存器中。      
      D、操作数的地址在寄存器中。
      记住:凡是有间接的,都是以地址存储。
                      
(3)指令译码器的输入信号来自于
  A)整条指令          B)指令的操作码字段
  C)指令的地址码字段 D)指令的操作数字段
  答案:B
(4)对一棵二叉排序树进行某种遍历操作,可以得到该二叉树的所有结点按值有序排列的序列。该遍历操作是
  A)前序遍历 B)后序遍历 C)中序遍历 D)按层次遍历
  答案:C
  分析:对二叉排序树中序遍历可以得到递增数的序列。
(5)若无向图采用邻接矩阵方法存储,则该邻接矩阵一定是
  A)一般矩阵 B)对角矩阵 C)对称矩阵 D)稀疏矩阵
  答案:C
  分析:无向图邻接矩阵方法存储的矩阵是对称矩阵。
(6)已知散列函数为H(k)= k MOD 7,并且采用线性探测再散列方法处理冲突,依次将关键字15,10,45,20,27插入初始为空的散列表后,该散列表的状态是

  答案:D
  分析:15%7=1  10%7=3  45%7=3  20%7=6  遇到冲突填入下一个单元,到最末尾冲突填到第一个单元。
(7)根据(大顶)堆的定义,若对原始序列(26,5,77,1,61,11,59,15,48,19)进行堆排序,则第三趟排序结束时序列的状态是
  A)(59,48,26,15,19,11,1,5,61,77)  B)(5,48,26,15,19,11,1,59,61,77)
  C)(1,48,26,15,19,11,5,59,61,77)  D)(5,48,1,15,19,11,26,59,61,77)
  答案:B
  分析:首先应该弄明白堆排序的思想:
 若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于(或不小于)其子女的值,根结点的值是最小(或最大)的。
设有n个元素,将其按关键码排序。首先将这n个元素按关键码建成堆,将堆顶元素输出,得到n个元素中关键码最小(或最大)的元素。然后,再对剩下的n-1个元素建成堆,输出堆顶元素,得到n个元素中关键码次小(或次大)的元素。如此反复,便得到一个按关键码有序的序列。称这个过程为堆排序。


 


                                                                                     大根堆的初始化

  void HeapAdjust(S_TBL *h,int s,int m){/*r[s…m]中的记录关键码除r[s]外均满足堆的定义,本函数将对第s个结点为根的子树筛选,使其成为大顶堆*/
  rc=h->r[s];
  for(j=2*s;j<=m;j=j*2) /* 沿关键码较大的子女结点向下筛选 */
  { if(jr[j].keyr[j+1].key)
  j=j+1; /* 为关键码较大的元素下标*/
  if(rc.keyr[j].key) break; /* rc应插入在位置s上*/
  h->r[s]=h->r[j]; 
  s=j; /* 使s结点满足堆定义 */
  }
  h->r[s]=rc; /* 插入 */
  }
    然而,对堆排序采用如下算法:
  void HeapSort(S_TBL *h)
  { for(i=h->length/2;i>0;i--) /* 将r[1..length]建成堆 */
  HeapAdjust(h,i,h->length);
  for(i=h->length;i>1;i--)
  { h->r[1]<-->h->r[i]; /* 堆顶与堆低元素交换 */
  HeapAdjust(h,1,i-1); /*将r[1..i-1]重新调整为堆*/
  }
  }
  第一趟排序如下:  77和5交换  (77排好——输出77)


         第二趟排序如下:  1和61交换  (61排好——输出61)


                                              
  第三趟排序如下:  5和59交换  (59排好——输出59)
 
 
  因此,第三趟排序状态是5,48,26,15,19,11,1,59,61,77


(8)下面递归函数的功能是
  typedef struct node{
     datatype data;
     struct node *link;
  } *LinkList;
  int FUN(LinkList list)
  {
      if(list==NULL)
          return 0;
      else
          return 1+ FUN(list->link);
  }
  A)求一个链表的长度 
  B)在链表中删除一个结点
  C)删除并释放一个链表占用的空间   
  D)逆转一个链表的链接方向
  答案:A
  分析:采用递归调用计算链表的长度。
(9)设解释I如下:个体域D={a,b},F(x,y)为二元谓词,且F(a,a)=F(b,b)=1,F(a,b)=F(b,a)=0。在解释I下,下面公式中为假的是
  
  答案:A
  分析:首先要明白这两个的意思 F(a,a)=F(b,b)=1,F(a,b)=F(b,a)=0    对于二元关系F(x,y),x对应的是其前域,y对应的是其后域。  这个F(a,



  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请在两周内邮件fjksw@163.com联系.


    | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号